package com.wn.course.view.playvideo

import android.content.Context
import android.content.Intent
import android.graphics.Paint
import cn.jzvd.Jzvd
import com.bumptech.glide.Glide
import com.wn.common.base.BaseActivity
import com.wn.common.ktx.context
import com.wn.course.R
import com.wn.course.databinding.ActivityPlayVideoBinding
import com.wn.course.repository.data.Daily
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject

@AndroidEntryPoint
class PlayVideoActivity @Inject constructor() : BaseActivity<ActivityPlayVideoBinding>() {

  override fun getLayoutRes() = R.layout.activity_play_video

  override fun initView() {
    super.initView()
    mBinding.apply {
      // 跳转后 接收数据
      val url = intent.getStringExtra("url")
      val info = intent.getParcelableExtra<Daily.Item>("info")
      this.info = info
      // 实现删除线（中划线）效果
      clCardCourse.tvOldPriceItemCourse.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
      /**
       * jzVideo 没有声音控制  倍速控制
       */
      // 是否保存播放进度
      Jzvd.SAVE_PROGRESS = false
      // 开始播放
      jzVideo.setUp(url, "左上角 title 显示 !!") // 左上角 title 显示
      // 使用 glide 加载播放前显示的图片(推荐)
      Glide.with(context).load(info?.owner?.avatarUrl).into(jzVideo.posterImageView)
      // 开始播放
      jzVideo.startVideo()
    }
  }

  // 取消所有播放
  override fun onPause() {
    super.onPause()
    Jzvd.releaseAllVideos()
  }

  override fun onBackPressed() {
    if (Jzvd.backPress()) {
      return
    }
    super.onBackPressed()
  }

  /**
   * 跳转到 视频播放界面
   * @param context Context
   * @param url String -- 播放视频 URL
   * @param info Item -- 界面 include 的数据
   */
  fun openPlayVideo(context: Context, url: String, info: Daily.Item) {
    context.startActivity(Intent(context, this::class.java).apply {
      putExtra("url", url)
      putExtra("info", info)
    })
  }

}